URL с параметрами — одна из самых частых причин мусора в индексе: сортировки, фильтры, UTM-метки, внутренний поиск, служебные параметры плагинов. На живом сайте это быстро превращается в дубли, распыление краулингового бюджета и странные страницы в отчётах Search Console. Самая неприятная часть в том, что проблема часто выглядит как «всё работает», пока не начинаешь смотреть список проиндексированных URL.
Ниже — рабочая схема, как понять, какие параметры реально вредят, и как закрыть их от индексации без поломки сайта. Разберёмся и с robots.txt, и с noindex, и с тем, когда лучше вообще не трогать параметр, а убрать его источник.
Когда URL с параметрами становятся проблемой
Не каждый параметр нужно запрещать. Например, ?utm_source= сам по себе не создаёт отдельный контент, но может попадать в отчёты как отдельный URL. А вот ?s= для поиска по сайту, ?orderby= для сортировки, ?filter= для фасетной навигации или ?replytocom= в комментариях уже могут плодить десятки и сотни дублей.
Типичные сценарии
- страницы категорий доступны в нескольких вариантах сортировки;
- внутренний поиск индексируется как отдельные страницы;
- параметры фильтров создают почти одинаковые листинги;
- UTM-метки попадают в индекс вместе с основным контентом;
- служебные параметры плагинов создают технические дубли.
Если у вас уже есть статья про пагинацию, не смешивайте её с параметрами. Пагинация — это отдельная история: там важнее логика листинга и каноникал, а здесь речь именно о URL, которые меняются из-за query string.
Диагностика: какие параметры реально индексируются
Перед правками нужно увидеть проблему, а не угадывать её. Самый простой способ — взять несколько URL из отчёта поисковой системы и проверить, что именно меняется в контенте.
Что смотреть в первую очередь
- отчёт по страницам в Google Search Console;
- поиск по сайту с оператором
site:example.com inurl:?; - логи сервера, если есть подозрение на массовый обход фильтров;
- исходный код страницы: есть ли
meta robotsи канонический URL; - заголовки ответа, если параметр отдаёт отдельную HTML-страницу.
Если вы видите, что одна и та же страница доступна как /category/, /category/?orderby=price и /category/?orderby=date, это уже не косметика. Поисковик может воспринимать такие URL как отдельные документы, особенно если они отдают полноценный HTML и отличаются заголовками или блоками.
Что делать: три уровня решения
Лучший результат даёт не один приём, а комбинация. Сначала убираем источник дублей, потом закрываем индексацию, и только в конце подчищаем технические хвосты.
| Подход | Когда использовать | Плюсы | Минусы |
|---|---|---|---|
| Убрать параметр из генерации ссылок | Если параметр не нужен пользователю | Самое чистое решение | Нужно править тему, плагин или шаблон |
noindex на параметризованных URL | Если URL нужен, но не должен индексироваться | Контент остаётся доступным | Нужно аккуратно настроить логику |
| robots.txt | Если нужно сократить обход мусорных URL | Снижает нагрузку на обход | Не удаляет уже проиндексированные страницы |
1. Уберите источник параметра, если это возможно
Если сортировка, фильтр или метка не несут ценности для поиска, лучше не генерировать на них отдельные ссылки в шаблоне. Это особенно актуально для тем и плагинов, которые автоматически добавляют параметры в навигацию или кнопки.
Например, если UTM-метки попадают во внутренние ссылки, это уже ошибка разметки. Внутренние ссылки должны быть чистыми, а метки — только для внешних кампаний.
2. Закройте от индексации параметризованные страницы
Для страниц, которые должны открываться пользователю, но не должны попадать в индекс, используйте noindex, follow. Это можно сделать на уровне плагина SEO или через код. Важно: не ставьте noindex на всё подряд, иначе можно случайно закрыть полезные страницы.
Ниже пример для WordPress, который добавляет noindex, follow на URL с типичными мусорными параметрами. Код лучше размещать в мини-плагине или в functions.php дочерней темы, если у вас есть контроль над обновлениями.
add_filter('wp_robots', function ($robots) {
$params = array('orderby', 'filter', 's', 'replytocom', 'utm_source', 'utm_medium', 'utm_campaign');
foreach ($params as $param) {
if (isset($_GET[$param]) && $_GET[$param] !== '') {
$robots['noindex'] = true;
$robots['follow'] = true;
break;
}
}
return $robots;
});Этот вариант не идеален для всех сайтов, но он рабочий как базовая защита. Если у вас уже стоит SEO-плагин, проверьте, не конфликтует ли он с этим фильтром: иногда плагин перезаписывает robots-мета на своих страницах.
3. Подскажите поисковику через robots.txt
robots.txt полезен, когда нужно сократить обход заведомо мусорных URL. Но важно понимать ограничение: если страница уже в индексе, запрет в robots.txt не удалит её сам по себе. Для удаления обычно нужен noindex или возврат 404/410 там, где это действительно уместно.
Пример точечного запрета для популярных параметров:
User-agent: *
Disallow: /*?orderby=
Disallow: /*?filter=
Disallow: /*?replytocom=
Disallow: /*?s=
Disallow: /*?utm_
С UTM-параметрами есть нюанс: если запретить слишком агрессивно, можно усложнить обход страниц, на которые ведут внешние ссылки с метками. Обычно безопаснее закрывать их через noindex, а не через жёсткий запрет сканирования.
Пошаговая настройка без лишнего риска
- Составьте список параметров, которые реально создают дубли.
- Проверьте, есть ли у них отдельный контент или только вариация листинга.
- Уберите параметр из внутренних ссылок, если он не нужен.
- Добавьте
noindex, followдля нужных URL. - Точечно ограничьте обход в
robots.txt, если параметров много. - Проверьте канонический URL на страницах с параметрами.
Если вы используете плагин для SEO-мета, сначала посмотрите, умеет ли он задавать правила для архивов и параметров. Иногда проще настроить это в интерфейсе, чем поддерживать свой код. Но если логика нестандартная, код надёжнее: он предсказуем и не зависит от обновлений интерфейса.
Как проверить, что решение сработало
Проверка нужна не только в браузере. Смотрите на результат в коде страницы, в ответе сервера и в отчётах поисковой системы.
Мини-чек-лист проверки
- на URL с параметром в исходном коде есть
<meta name="robots" content="noindex,follow">или эквивалентный HTTP-заголовок; - канонический URL указывает на чистую версию страницы без параметров;
- страница открывается для пользователя и не ломает навигацию;
- в Search Console параметризованные URL постепенно уходят из индекса или помечаются как исключённые;
- внутренние ссылки больше не генерируют мусорные параметры без необходимости.
Проверить robots-мета можно через просмотр исходника или через curl:
curl -I https://example.com/category/?orderby=dateЕсли вы используете HTTP-заголовок X-Robots-Tag, он должен быть виден в ответе. Это удобно для файлов, медиа и нестандартных маршрутов, но для обычных HTML-страниц чаще проще и понятнее управлять через wp_robots или SEO-плагин.
Частые ошибки и как их исправить
Закрыли всё через robots.txt и ждёте удаления из индекса
Это самая частая ошибка. Robots.txt ограничивает обход, но не всегда убирает уже известный URL из индекса. Если страница уже проиндексирована, нужен noindex или корректный статус ответа.
Поставили noindex на полезные архивы
Иногда под раздачу попадают категории, теги или страницы фильтра, которые реально нужны пользователю и могут приносить трафик. Перед закрытием проверьте, не является ли URL посадочной страницей с уникальным спросом.
Не убрали внутренние ссылки с параметрами
Если шаблон продолжает генерировать ссылки с ?utm_ или сортировкой, поисковик всё равно будет их находить. Закрытие индексации не отменяет проблему источника.
Смешали каноникал и noindex без логики
Если канонический URL указывает на одну страницу, а noindex стоит на другой, важно понимать, что вы хотите получить. Обычно для дублей параметров логика такая: параметризованная версия — noindex, follow, каноникал — на чистую страницу.
Безопасность и производительность: что учесть
Если параметров много, не пытайтесь лечить всё тяжёлым PHP-кодом на каждом запросе. Условие должно быть простым и дешёвым. Проверка $_GET — нормальный вариант, но не добавляйте туда сложные запросы к базе или регулярки без необходимости.
Для больших сайтов полезно ещё и уменьшить количество параметров на уровне фронтенда: не передавать лишнее в ссылках, не сохранять UTM во внутренней навигации, не плодить сортировки, которые не дают ценности. Чем меньше мусора создаётся, тем меньше работы у поискового робота и у вас при разборе отчётов.
Если нужен более системный подход к чистке дублей, мета-правилам и технической оптимизации, можно посмотреть на Clearfy Pro: